import importlib
import traceback

class Evaluator:
    """
    处理程序的执行和评估。
    """
    def __init__(self, evaluation_module: str):
        try:
            self.eval_module = importlib.import_module(evaluation_module)
        except ImportError:
            raise ValueError(f"无法导入评估模块: {evaluation_module}")

    async def evaluate(self, program_code: str) -> dict:
        """
        在给定的程序代码上执行用户定义的评估函数。
        """
        try:
            return self.eval_module.evaluate(program_code)
        except Exception as e:
            print(f"评估期间出错: {e}")
            traceback.print_exc()
            return None